{{tag>Precise tutoriel programmation}}
----

====== Comment internationaliser un logiciel libre? ======

Vous avez créé un logiciel libre et vous souhaitez l'internationaliser? Ce tutoriel décrit les logiciels à installer et la démarche à suivre.

===== Pré-requis =====

  * Avoir créé un logiciel libre.

===== A faire une bonne fois pour toutes =====

Tout d'abord, il vous faudra:
  * créer un compte Launchpad pour votre application (par exemple https://launchpad.net/monappli )
  * traduire en anglais, si ce n'est pas déjà fait, les chaînes de caractères de votre GUI
  * ajouter "gettext-base" comme dépendance de votre application
  * au début de votre application, charger le ou les fichiers de traduction (.mo) via la syntaxe suivante :

<code bash># pour du bash, à adapter pour d'autres langages
set -a
source gettext.sh
set +a
export TEXTDOMAIN=nomdelapplication
export TEXTDOMAINDIR="/usr/share/locale"
. /usr/bin/gettext.sh
</code>

===== À refaire à chaque fois qu'on ajoute une/plusieurs chaînes à traduire =====

* Dans votre application, utiliser la syntaxe suivante:

<code bash># pour du bash, à adapter pour d'autres languages
echo "$(eval_gettext $'Welcome to my first free software')" # par exemple dans fichier1.sh
echo "$(eval_gettext $'Please click here')" # par exemple dans fichier2.sh</code>

  * Fabriquer le fichier de traduction .pot via la commande suivante en lui mettant en argument les fichiers qui contiennent des phrases à traduire:

<code>xgettext --language=Shell --output=nomdelapplication.pot /dossier1/fichier1.sh /dossier2/fichier2.sh</code>

  * Uploader le .pot sur la page "Translations" de votre projet Launchpad (ne pas oublier de valider le .pot)

  * Les traducteurs traduisent

  * Télécharger les .mo depuis Launchpad

  * Placer les .mo dans la source de votre application dans le dossier /usr/share/locale

===== Voir aussi =====

  * [[http://forum.ubuntu-fr.org/viewtopic.php?id=625351|Discussion "Tutoriel pour internationaliser un logiciel libre"]] sur le forum ubuntu-fr


----
//Contributeurs principaux : [[:utilisateurs:YannUbuntu]].//